↳ Prolog
↳ PrologToPiTRSProof
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_ga(T, -(Xs, []))) → preorder_out_ga(T, Xs)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_ga(T, -(Xs, []))) → preorder_out_ga(T, Xs)
PREORDER_IN_GA(T, Xs) → U1_GA(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
PREORDER_IN_GA(T, Xs) → PREORDER_DL_IN_GA(T, -(Xs, []))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GA(L, -(Xs, Ys))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → PREORDER_DL_IN_GA(R, -(Ys, Zs))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_ga(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PREORDER_IN_GA(T, Xs) → U1_GA(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
PREORDER_IN_GA(T, Xs) → PREORDER_DL_IN_GA(T, -(Xs, []))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GA(L, -(Xs, Ys))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → PREORDER_DL_IN_GA(R, -(Ys, Zs))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_ga(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GA(L, -(Xs, Ys))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → PREORDER_DL_IN_GA(R, -(Ys, Zs))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_ga(T, -(Xs, [])))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_ga(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GA(L, -(Xs, Ys))
U2_GA(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → PREORDER_DL_IN_GA(R, -(Ys, Zs))
PREORDER_DL_IN_GA(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GA(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
preorder_dl_in_ga(nil, -(X, X)) → preorder_dl_out_ga(nil, -(X, X))
preorder_dl_in_ga(tree(L, X, R), -(.(X, Xs), Zs)) → U2_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(L, -(Xs, Ys)))
U2_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(L, -(Xs, Ys))) → U3_ga(L, X, R, Xs, Zs, preorder_dl_in_ga(R, -(Ys, Zs)))
U3_ga(L, X, R, Xs, Zs, preorder_dl_out_ga(R, -(Ys, Zs))) → preorder_dl_out_ga(tree(L, X, R), -(.(X, Xs), Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
PREORDER_DL_IN_GA(tree(L, X, R)) → PREORDER_DL_IN_GA(L)
U2_GA(R, preorder_dl_out_ga) → PREORDER_DL_IN_GA(R)
PREORDER_DL_IN_GA(tree(L, X, R)) → U2_GA(R, preorder_dl_in_ga(L))
preorder_dl_in_ga(nil) → preorder_dl_out_ga
preorder_dl_in_ga(tree(L, X, R)) → U2_ga(R, preorder_dl_in_ga(L))
U2_ga(R, preorder_dl_out_ga) → U3_ga(preorder_dl_in_ga(R))
U3_ga(preorder_dl_out_ga) → preorder_dl_out_ga
preorder_dl_in_ga(x0)
U2_ga(x0, x1)
U3_ga(x0)
From the DPs we obtained the following set of size-change graphs: